home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / pcl / sptmbr16.lha / 5-22-89-notes.text < prev    next >
Text File  |  1989-08-07  |  5KB  |  153 lines

  1. Copyright (c) Xerox Corporation 1989. All rights reserved.
  2.  
  3. These notes correspond to the "5/22/89 Victoria PCL" version of PCL.
  4.  
  5. Please read this entire file carefully.  Failure to do so guarantees
  6. that you will have problems porting your code from the previous release
  7. of PCL.
  8.  
  9. You may also be interested in looking at previous versions of the
  10. notes.text file.  These are called xxx-notes.text where xxx is the
  11. version of the PCL system the file corresponds to.  At least the last
  12. two versions of this file contain useful information for any PCL user.
  13.  
  14. This version of PCL has been tested at PARC in the following Common
  15. Lisps:
  16.  
  17.   Symbolics 7.2, 7.4
  18.   Coral 1.2
  19.   Lucid 3.0
  20.   IBCL (October 15, 1987)
  21.   Allegro 3.0.1
  22.   Golden Common Lisp 3.1
  23.   EnvOS Medley
  24.  
  25. These should work, but haven't been tested yet:
  26.  
  27.   TI
  28.  
  29. This release is similar to Cinco de Mayo and Passover PCL.  The major
  30. difference is that this release actually works.
  31.  
  32. ***
  33.  
  34. *other-exports* flushed.  More exports now on *exports*
  35.  
  36. The symbol STANDARD is now exported from the PCL package. standard-class
  37. standard-method standard-generic-function standard-object built-in-class
  38. structure-class
  39.  
  40. scoping problem with *next-methods*
  41.  
  42.  
  43. method and generic function initialization protocol
  44.  
  45. methods are immutable
  46.  
  47. type-specifiers --> specializers
  48.  
  49. load-truename etc.
  50.  
  51. defgeneric ensure-generic-function define-method-combination
  52.  
  53. metabraid changes
  54.  
  55. file namings
  56.  
  57. ***
  58.  
  59. There are a number of minor and one major difference between this
  60. release and No Cute Name PCL.
  61.  
  62.  
  63. - In the last release there was an implementation of the specified CLOS
  64. initialization protocol.  This implementation had the correct behavior,
  65. but some of the generic functions had temporary names (*make-instance,
  66. *initialize-instance and *default-initargs).  This was done to give
  67. people time to convert their code to the behavior of the new
  68. initialization protocol.
  69.  
  70. In this release, all generic functions in the specified initialization
  71. protocol have their proper names.  The implementation of the old,
  72. obsolete initialization protocol has disappeared entirely.
  73.  
  74. The following renamings have happened:
  75.  
  76.   12/7/88 release                this release
  77.  
  78.   *make-instance                 make-instance
  79.   *initialize-instance           initialize-instance
  80.   *default-initargs              default-initargs
  81.  
  82. The functions shared-initialize and reinitialize-instance already had
  83. the proper names.
  84.  
  85. The new initialization protocol is documented fully in the 88-002R
  86. specification.
  87.  
  88. As part of this change, PCL now uses the new initialization protocol to
  89. create metaobjects internally.  That is it calls make-instance to create
  90. these metaobjects.  The actual initargs passed are not yet as specified,
  91. that will be in a later release.
  92.  
  93. This is the largest change in this release.  If you have not already
  94. started using the new initialization protocol (with the temporary *xxx
  95. names) you are going to have to do so now.  In most cases, old methods
  96. on the generic functions INITIALIZE, INITIALIZE-FROM-DEFAULTS and
  97. INITIALIZE-FROM-INIT-PLIST must be substantially rewritten to convert
  98. them to methods on INITIALIZE and SHARED-INITIALIZE.
  99.  
  100. - slots with :ALLOCATION, :CLASS now inherit properly.  As part of this
  101. change, some slot description objects now return a class object as the
  102. result of SLOTD-ALLOCATION.
  103.  
  104. - There is now a minimal implementation of the DEFGENERIC macro.  This
  105. implementation supports no options, but it does allow you to define a
  106. generic function in one place and put some comments there with it.
  107.  
  108. - The following functions and macros have disappeared.  This table also
  109.   show briefly what you use instead.
  110.  
  111.     DEFMETHOD-SETF               (use DEFMETHOD)
  112.     RUN-SUPER                    (use CALL-NEXT-METHOD)
  113.     OBSOLETE-WITH-SLOTS          (use WITH-SLOTS or WITH-ACCESSORS)
  114.     SYMBOL-CLASS                 (use FIND-CLASS)
  115.     CBOUNDP                      (use FIND-CLASS)
  116.     CLASS-NAMED                  (use FIND-CLASS)
  117.     GET-SETF-GENERIC-FUNCTION    (use GDEFINITION)
  118.  
  119. - In certain ports, method lookup will be faster because of a new scheme
  120. to deal with interrupts and the cache code.  In other ports it will be
  121. slightly slower.  In all ports, the cache code now interacts properly
  122. with interrupts.
  123.  
  124. - DEFMETHOD should interact properly with TRACE, ADVISE etc. in most
  125. ports.  two new port-specific functions (in defs.lisp) implement this.
  126. These are unencapsulated-fdefinition and fdefine-carefully.  If this
  127. doesn't work properly in your port, fix the definition of these
  128. functions and send it back so it can be in the next release.
  129.  
  130. - This release runs in Golden Common Lisp version 3.0.
  131.  
  132. - Previously, the use of slot-value (or with-slots) in the body of a
  133. method which had an illegal specializer gave strange errors.  Now it
  134. gives a more reasonable error message.
  135.  
  136. - An annoying problem which caused KCL and friends to complain about
  137. *exports* being unbound has been fixed.
  138.  
  139. - The walker has been modified to understand the ccl:%stack-block
  140. special form in Coral Common Lisp.
  141.  
  142. - The use of defadvice in pre 3.0 releases has been fixed in Lucid Low.
  143.  
  144. - multiple-value-setq inside of with-slots now returns the correct
  145. value.
  146.  
  147. - A minor bug having to do with macroexpansion environments and the KCL
  148. walker has been fixed.
  149.  
  150. - A bug in the parsing of defmethod which caused only symbols (rather
  151. than non-nil atoms) to be used as qualifiers.
  152.  
  153.